White-box cryptography is concerned with the design and analysis of software implementations of cryptographic algorithms engineered to execute on untrusted platforms. Particularly, this is the scenario where the user of a particular device can decrypt messages (with a secret key) which are encrypted with his public key but is unable to extract or derive sufficient information to recover this secret key. Furthermore, it is assumed that the user can be the attacker: for example, an attacker may have full access to the software implementation, can pause, alter and resume the execution of the software implementation at any time. The white-box model was first studied in the context of symmetric cryptographic algorithms such as Advanced Encryption Standard (AES) or Data Encryption Standard (DES).
Various asymmetric cryptographic schemes include modular exponentiation as the main computational operation. Modular exponentiation computes, for example,c=bd mod N 
where the base b, the exponent d, and the modulus N are positive integers such that 0<b<N and 0<d<φ(N). The function φ is the Euler totient function which can be computed as
      φ    ⁡          (      N      )        =      N    ⁢                  ∏                  p          |          N                    ⁢                          ⁢              (                  1          -                      1            p                          )                            The product is over the distinct prime numbers p>1 dividing N. There are two special cases used in cryptography including:        1. When N is prime then φ(N)=N−1.        2. When N=p·q, for two primes p and q such that 1<p≠q>1, then φ(N)=(p−1)(q=1).        